package com.yuma.reflect;

import java.lang.reflect.Method;

class Cat{
    private String name;
    private int age;

    public void testCat(){
    }
}


public class CatDemo {
    public static void main(String[] args) throws NoSuchMethodException {
        // Class: Cat类所有东西、父类、接口、注解、方法、属性、构造器、枚举、注解、内部类、外部类、字段、方法、构造器、枚举、注解、内部类、外部类、字段、方法、构造器、枚举、注解、内部类、外部类、字段、方法、构造器、枚举、注解、内部类、外部类、字段、方法、构造器、枚举、注解
        Class clazz = Cat.class;
        Method testCat = clazz.getMethod("testCat");
        // 类加载器   AppClassLoader
        ClassLoader classLoader = Cat.class.getClassLoader();
        System.out.println("当前类加载器:" + classLoader);   //  AppClassLoader

        ClassLoader parentClassLoader = classLoader.getParent();
        System.out.println("当前类加载器的父亲加载器:" + parentClassLoader);  // PlatformClassLoader

        ClassLoader bootClassLoader = parentClassLoader.getParent();
        System.out.println("当前类加载器的父亲加载器的父亲加载器:" + bootClassLoader);  // null
    }
}
